/**
 export function to<T, U = Error> (
  promise: Promise<T>,
  errorExt?: object
): Promise<[U, undefined] | [null, T]> {
  return promise
    .then<[null, T]>((data: T) => [null, data]) // 执行成功，返回数组第一项为 null。第二个是结果。
    .catch<[U, undefined]>((err: U) => {
      if (errorExt) {
        Object.assign(err, errorExt);
      }

      return [err, undefined]; // 执行失败，返回数组第一项为错误信息，第二项为 undefined
    });
}

作者：Gopal
链接：https://juejin.cn/post/7011299888465969166
来源：稀土掘金
著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
 */
function to(promise, errorExt) {
  return promise
    .then((data) => [null, data])
    .catch(
      // 执行成功，返回数组第一项为 null。第二个是结果。
      (err) => {
        if (errorExt) {
          Object.assign(err, errorExt);
        }
        return [err, undefined]; // 执行失败，返回数组第一项为错误信息，第二项为 undefined
      }
    );
}

// 作者：Gopal
// 链接：https://juejin.cn/post/7011299888465969166
// 来源：稀土掘金
// 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。

function haveChinaStr(str) {
  var patthrn = /.*[\u4e00-\u9fa5]+.*$/;
  return patthrn.test(str);
}

function wait(second) {
  return new Promise(function (resolve) {
    setTimeout(() => {
      resolve();
    }, second * 1000);
  });
}

module.exports = {
  to,
  haveChinaStr,
  wait,
};
